/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Dominio;

import disco.HandlerDisk;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author halt
 */
public class GestorZona implements Serializable {
    List<Zona> lz;
    HandlerDisk hd;
    public GestorZona() {
        lz = new ArrayList<Zona>();
        hd = new HandlerDisk();
    }

    public void addZona(int id, float precio, String txt) {
        int n = lz.size();
        boolean enc = false;
        for (int i = 0; i < n && !enc; ++i) {
            enc = (id == lz.get(i).id);
        }
        if(!enc) {
            Zona z = new Zona();
            z.setId(id);
            z.setPrecio(precio);
            z.setDescripcion(txt);
            lz.add(z);
        }
    }

    public Zona buscarZona(int id) {
        int n = lz.size();
        boolean enc = false;
        Zona z = null;
        int i;
        for (i = 0; i < n && (enc == false); ++i) {
            if (id == lz.get(i).id) {
                z = lz.get(i);
                enc = true;
            }
        }
        return z;
    }

    public void deleteZona(int id) {
        int n = lz.size();
        boolean enc = false;
        int i;
        Zona z = null;
        for (i = 0; i < n && !enc; ++i) {
            enc = (id == lz.get(i).id);
            z = lz.get(i);
        }
        if(enc) lz.remove(z);
    }

    public void changePriceZona(int id,float nuevoPrecio){
        Zona z = buscarZona(id);
        if(z != null) z.setPrecio(nuevoPrecio);
        else System.out.println("Estoy en changePriceZona y la Zona z es null");
    }

    public void changeDescripcion(int id, String txt) {
        Zona z = buscarZona(id);
        if (z != null) z.setDescripcion(txt);
        else System.out.println("Estoy en changeDescripcion y la Zona z es null");
    }
    public float getPrecioZona(int id) {
        Zona z = buscarZona(id);
        if (z != null) return z.precioZona;
        else {
            System.out.println("Estoy en precioZona y la Zona z es null");
            return -1;
        }
    }

    public String[][] getInfoZonas() {
        int n =  lz.size();
        String [][] zonasS = new String[n][3];
        for (int i = 0; i < n; ++i) {
            zonasS[i][0] = String.valueOf(lz.get(i).id);
            zonasS[i][1] = String.valueOf(lz.get(i).precioZona);
            zonasS[i][2] = lz.get(i).descripcion;
        }
        return zonasS;
    }

    public void saveGestorZona(){
        hd.guardarGestorZona(this);
    }

    public GestorZona loadGestorZona() throws FileNotFoundException, IOException, ClassNotFoundException {
        return hd.cargarGestorZona();
    }

}
